Great Circle Maps

Version 2.2 for Windows

Information

This program makes great circle maps. You can set the center point with latitude/longitude or  by the Maidenhead locator system. You can view the whole earth or as many km from center point as you wish. You can have meridians or fields (or fields and squares) and optionally add field letters and square figures. You can add points, prefix or text from a database. You can also have line data in a database so you can add your own borders, call zones or whatever.

The program prints with color if you got a colour printer.

If you click with your mouse on the map, the bearing and distance is showed. Click in the information square to remove the text.

The program is not mathematically exact. The earth is a perfect sphere and the map data has some limitations.

GcmWin is freeware. Have you got ideas how to improve the program  - please contact me. Address at the end of the document.

The first thing to do is to tell the program your center latitude and longitude. You cannot choose the north or south pole. You find these under the settings menu. Here you can set colours, font sizes, zoom factor etc.

The databases are old. MWDB is from 1985. Countrys have disappeared and some are new.

If you know of some other databases which is free to use, or if you make your own please tell me about it and send me a copy!

Version 2.0 is the first Windows version.

Menues

File

Save as bmp

Here you can save your plotted picture as a bmp picture. If you are low on memory you might get an Out of memory error when saving a picture. Change the Viewport size to a smaller value in the Settings menu.

The picture is saved in full colour even if you have only black and white on the picture. You can use a paint program to save the picture with fewer colours to save space on your hdd.

The program suggests the locator + bmp as a filename. A settings file is saved with the picture with information about the scale and center lat/lon.

Load bmp

Loads a bitmap from disk. If the file FILENAME.GCM is found the information is taken from that file otherwise you will have to set the center coords and range manually. Eventually you will have to reload the picture.

Print

Prints to your printer and screen simultaneously. The program redraws the map.When the printing is finished you have the option to add point, prefix, text or line data before paper eject.

Print Screen

Here you get a screen printout. The quality is low. If you want a high quality print choose Print above.

Exit

Exits program.

Start

When you click here the plotting starts. The menu text is changed to Stop. Click here if you want to abort. It may take a while if you got a slow computer.

Add...

Add point/prefix/text

Adds point, prefix or text from a database. The program comes with a database called prefix.dat

The file looks like this:

S9,SAO TOME,.3,6

SM,SWEDEN - Stockholm,59.3,18.1

SP,POLAND - Warsaw,52.2,21

As you can see it is a normal ASCII text file with a comma as a separator.

First data ''SM'' is the prefix (Plot with Add prefix)

Second data ''SWEDEN - Stockholm'' is text (Plot with Add text)

Third data ''59.3'' is latitude. Decimal degrees. South lats are negative.

Fourth data ''18.1'' is longitude. Western longitudes are negative.

Add points makes a small dot/ring at lat/long.

Add lines

Add lines from a database. This one you will have to make yourself.

A file might look like this:

1000,64.1,17.0

1,64.2,17.0

3,64.3,17.1

It is a normal text file with a comma as a separator.

File format is similar to the binary format that is used for map data.

First item is 1000. A figure above 1000 tells the program that this is the beginning of a line. Is it between 1 and 5 is it plotted with the same kriteria as the mwdb database. If you have set detail to max everything <=5 is plotted. You have four steps with lower and lower resolution.

Second item ''64.1'' is the latitude.

Third item ''17.0'' is the longitude.

Another methode is to add data to the binary files with the program you find at the end of this text.

DX pos

Is activated when you have finished plotting or loaded a bitmap.

You can give the locator or prefix and a line is drawn from home location to the locator/prefix.

The bearing and distance is written in the top left corner of the picture.

Settings

Here you set everything. The colour for background, borders, coastlines etc, font size for text data, if you like meridians or fields plotted, if you want a compass around the picture, the range (scale).... 20000 km is approxiamtely the distance to the other side of earth.

A thing not mentioned elsewere... The font size of the degrees figures on the compass is the same size as the square font size!

Limitations and bugs

Out of memory error when saving large pictures and internal ram memory < 16 mb. Lower the viewport size value.

Version 2 is the first Windows version and is not perfect.

With ET4000/W32 graphic card and Windows 3.1 the printer could not draw lines in any other directions than 0 and 90 degrees. Change your graphic driver to Windows own VGA or a standard ET4000 routine. (Guess how long it took to find this error....)

The mouse pointer is never changed to an hour glass even if the program is busy.

Problems when saving the bitmap on certain video cards.

History:

Changes between 2.0 and 2.2

Menu Item Settings and Exit got the same shortcut key (Alt E). Fixed

The text in the lower left corner of the display said it was miles but it was kilometers.. Fixed

Credits added on the exit screen....

If you added lines you had to switch places between lat and long. Fixed.

When you printed a map and added point/prefix/text data you never got a paper eject. Fixed.

Modified the menu choices so it looks more like Windows strandard.

Added a print screen menu choice.

A more accurate prefix.dat is supplied by Yann F1NGP.

Databases

The format for the map databases is a binary format.

You can add data with this simple Qbasic program:

' Program for adding data to a binary file.

' Roger Hedin

'

'Here we make our own type. Just like an integer or float. In C it is called struct.

TYPE latlong

        code AS INTEGER

        lat AS INTEGER

        lon AS INTEGER

END TYPE

'Make a variabel of the type latlong

DIM lalo AS latlong

'This is the database we shall work with.

infile$ = "mapper.pnt"

'Open file for writing/reading

OPEN infile$ FOR RANDOM AS #1 LEN = LEN(lalo)

InData:

        CLS

        items = LOF(1) \ LEN(lalo)

        PRINT "Number of items = "; item

        PRINT "Beginning of line ->  lalo.code  > 1000."

        PRINT "ENTER = Add item, Other key = End"

        PRINT

        PRINT TAB(10); "CODE"; TAB(19); "Lat (N+ S-)"; TAB(34); "Long (E+ W-)"

'Show the 10 last fileds

Skip this part if you start a new file (items < 10)

                        FOR cnt = (items - 10) TO items

                                GET #1, cnt, lalo

                                PRINT cnt; TAB(10); lalo.code; TAB(20); lalo.lat / 60; TAB(35); lalo.lon / 60

                        NEXT cnt

        PRINT

        q$ = UCASE$(INPUT$(1))

        IF ASC(q$) <> 13 THEN

'Not ENTER - END

                CLOSE #1

                END

        ELSE

'You pressed ENTER

                LOCATE 18, 10: INPUT ; "", code

                LOCATE 18, 20: INPUT ; "", latgr

                LOCATE 18, 35: INPUT ; "", longr

                PRINT

                PRINT "Post :"; cnt, "Lat :"; latgr, "Long: "; longr

                PRINT "ENTER = OK to store, Other key = Rewrite "

                q$ = UCASE$(INPUT$(1))

                IF ASC(q$) = 13 THEN

' Enter pressed - store item

                        lalo.code = code

                        lalo.lat = latgr * 60

                        lalo.lon = longr * 60

                        PUT #1, cnt, lalo

                END IF

        END IF

        GOTO InData

' End of program

Contact me!

If you got ideas how to improve the program, write to me! (Program written with Visual Basic 3.0 standard edition).

Post:

Roger Hedin

Ringvagen 23b

88140 Solleftea

Sweden

Packet:

SM3GSJ@SK3EK.Y.SWE.EU

Email

roger.hedin@vpress.se

telephone:

sweden 620 10097